import hashlib
import os
from pathlib import Path
import shutil
# hash = hashlib.sha1()
# hash.update()

path = r'D:\aa.txt'
# with Path(path).open('rb') as file:
#     s = file.read()
#     print(s)

# print(Path(path).read_text(encoding='gbk'))
#
# # 根路径，目录名列表，文件名列表
# for root,dirs,files in os.walk(r'D:\tmp'):
#     print(dirs)
#     if len(dirs)> 0:
#         print(Path(root).joinpath(*dirs))
    #print(root,dirs,files)

#获取当前文件所在目录
print(Path().resolve())
print(Path('.').resolve())
#获取上级目录
print(Path('..').resolve())

#获取文件名含后缀
print(Path(path).name)
#获取文件名不含后缀
print(Path(path).stem)
#获取文件名后缀
print(Path(path).suffix)               #.txt
print(Path(r"d:\ja.py.bak").suffixes)  #['.py', '.bak']

#获取父级目录
print(Path(r"d:\user\less\demo.py").parent)
#判断文件是否存在
print(Path(path).exists())


#路径链接
print(Path(r"d:\aaa") / "bbb" /"ccc" / "yqdz.exe") #d:\aaa\bbb\ccc\yqdz.exe
print(Path(r"d:\aaa",r"bbb","ccc","yqdz.exe"))
print(Path().joinpath(r"d:\aaa", "bbb", "ccc"))
#链式写入
Path(r"d:\pathlib.txt").write_text("测试下\n", encoding='utf-8')

#打开IO方式写入
with Path(r"d:\pathlib.txt").open("a",encoding='utf-8') as file:
    file.write("追加测试下")



#创建文件夹
p = Path(r"d:\father\son")
#p.mkdir() #目录存在或者父级目录不存在都抛异常
#p.mkdir(parents=True)  # parents=True 同时创建父级目录
p.mkdir(exist_ok=True)  #exist_ok=True 目录已存在是正常返回不抛异常

print(p.is_dir())
print(p.is_file())
#删除文件夹,文件夹必须存在且为空否则抛异常
p.rmdir()


#遍历目录
p = Path(r"D:\GIT")
for item in p.iterdir():
    print(item,item.is_file())

#查找当前目录下所有含 t 的文件及目录
print(list(p.glob("*t*")))
#查找当前目录树下所有log文件
print(list(p.glob("**/*.log")))